#!/usr/bin/python3
"""
类的三种方法演示程序
"""

import sys


class Foo(object):
    def __init__(self, year=2022, month=1, day=1):
        self.day = day
        self.month = month
        self.year = year

    # 1 类方法
    @classmethod
    def get_date(cls, string_date):
        # 第一个参数是cls，表示调用当前的类名
        print("XXXXXInput =", string_date, file=sys.stderr)
        year, month, day = map(int, string_date.split('-'))

        date = cls(year, month, day)
        # 返回一个初始化后的类
        return date

    # 2 实例方法
    def output_date(self):
        # 第一个参数是self，表示调用当前的类的实例
        print("YYYY/MM/DD = %04d/%02d/%02d" % (self.year,
                                               self.month,
                                               self.day))

    # 3 静态方法
    @staticmethod
    def get_max_int(a, b):
        return a if a > b else b


def main(argc, argv):
    print("=== A === 类方法")
    a = Foo.get_date('2023-10-10')
    a.output_date()

    print("=== B === 实例方法")
    b = Foo(2023, 10, 24)
    b.output_date()

    print("=== C === 静态方法")
    print(Foo.get_max_int(10, 11))

    return 0


if __name__ == '__main__':
    sys.exit(main(len(sys.argv), sys.argv))
